iT邦幫忙

2024 iThome 鐵人賽

DAY 22
0
IT 管理

API Gateway:微服務世界的守護者系列 第 22

Day 22 - 體驗 OpenTelemetry use Tempo & Prometheus

  • 分享至 

  • xImage
  •  

描述

善用 Tempo 和 Prometheus,深入剖析你的服務

前言

在微服務架構盛行的今天,服務之間的複雜互動關係使得系統的監控變得越來越重要。OpenTelemetry SDK Zero Code 提供了一種便捷的方式來收集 telemetry data,而 Tempo 和 Prometheus 則能將這些數據轉化為有價值的洞見。本文將深入探討如何利用 Tempo 和 Prometheus 來查看 Trace 資訊,並可視化 Service Graph,以便你更深入地了解你的服務。

OpenTelemetry SDK Zero Code 的角色
OpenTelemetry SDK Zero Code 的主要功能是自動為你的應用程式生成 telemetry data,包括 trace、metric 和 log。這些數據會被傳送到後端系統,例如 Tempo 和 Prometheus,進行進一步的處理和分析。

Tempo:你的 Trace 資料庫
Tempo 是一個高效且易於使用的 tracing backend,專門用於儲存和查詢 trace 資料。它支援多種 tracing protocol,包括 Jaeger、Zipkin 和 OpenTelemetry。Tempo 的主要優勢在於:

  • 低成本: Tempo 將 trace 資料儲存在物件儲存中,例如 Google Cloud Storage 或 Amazon S3,大幅降低了儲存成本。

  • 高性能: Tempo 採用了高效的資料結構和查詢引擎,能夠快速查詢和分析大量的 trace 資料。

  • 易於使用: Tempo 提供了友好的使用者介面和強大的查詢語言(TraceQL),方便使用者進行查詢和分析。
    Prometheus:你的 Metric 資料庫
    Prometheus 是一個開源的系統監控和警報工具。它通過 pull 模式從目標端點收集 metrics,並將這些 metrics 儲存起來,以便進行時間序列分析。Prometheus 的主要特點包括:

  • 靈活的查詢語言: Prometheus 的查詢語言 PromQL 非常強大,可以進行複雜的查詢和聚合。

  • 多維度數據模型: Prometheus 使用多維度數據模型來儲存 metrics,方便進行多維度分析。

  • 豐富的生態系統: Prometheus 有著豐富的生態系統,提供了大量的 exporter 和儀表板。

  • Grafana:你的可視化工具
    Grafana 是一個開源的分析和監控平台,它可以連接多個資料來源,包括 Tempo 和 Prometheus。Grafana 提供了豐富的圖表和儀表板功能,可以幫助你可視化 trace 和 metric 資料。

結合 Tempo 和 Prometheus,打造全方位的監控體系
通過將 Tempo 和 Prometheus 與 Grafana 結合,可以:

查看不同服務進來的時間順序: 利用 Tempo 的 trace 資料,你可以清楚地看到每個請求在不同服務之間的流轉過程,以及每個步驟所耗費的時間。
鑽取到具體的 Span: 通過點擊 trace 中的 Span,你可以深入到具體的函數(function)或方法(service),查看其執行細節。
使用 Filter (Query Language) 進行篩選: Tempo 的 Filter QL - TraceQL 非常類似於 PromQL,你可以根據 duration、status code 或者其他 label 來篩選 trace 資料。
可視化 Service Graph: Grafana 可以根據 Tempo 的 trace 資料生成 Service Graph,直觀地展示服務之間的依賴關係

總結

Tempo 和 Prometheus 是兩個非常強大的工具,它們可以幫助你深入了解你的服務的性能和行為。通過將它們與 OpenTelemetry SDK Zero Code 和 Grafana 結合,你可以建立一個全方位的監控體系,以便你更好地維護和優化你的應用程式。

進一步探索以下主題:

TraceQL: 深入學習 TraceQL 的語法和用法,以便你可以更精準地查詢 trace 資料。
Grafana 儀表板: 學習如何使用 Grafana 建立自定義的儀表板,以便你可以可視化你關心的 metrics 和 traces。
Service Graph 分析: 了解如何分析 Service Graph,找出系統中的瓶頸和潛在問題。

推薦資源

資源索引:

以下為造著資源做出來的結果:

  1. Grafana : Explore > Tempo
    點選 Trace QL default A section 中的Search
    可以看到多個Trace ID 按時間從新到舊。
    把Trace ID點進,可以看到多個Span。
    image

  2. 加進Metrics-generator即可點選 Trace QL default A section 中的Service Graph
    image

  3. 將2.的文字用圖片中的標記導引開出對應的結果強調
    image

  4. 開啟Metrics-generator後,並額外加入Prometheus,點選Rate, Error Rate, Duration,可跳出右邊的視窗顯示Graph(資料來源為Prometheus)
    image


上一篇
Day 21 - Observability - OpenTelemetry
下一篇
Day 23 - 普米 & Grafana
系列文
API Gateway:微服務世界的守護者24
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言